<?php

namespace app\admin\controller;

use app\common\lib\IAuth;
use think\Cache;
use think\Controller;
use think\Request;
use think\Session;

class Login extends Controller
{
    /**
     * 显示资源列表
     *
     * @return \think\Response
     */
    public function index()
    {
        if(Session::has(config('user.last_time'))){
            $this->redirect('admin/index/index');
        }
        if(\request()->isPost()){
            $user = input('post.');
            $validate = validate('admin');
            if(!$validate->scene('login')->check($user)){
                $this->result([],config('code.error'),$validate->getError());
            }else{
                 $admin = model('admin')->get(['account'=>$user['account']]);
                 if(!$admin){
                     $this->result([],config('code.error'),'用户名不存在');
                 }
                 if(IAuth::setPassword($user['pwd']) != $admin->pwd){
                     $this->result([],config('code.error'),'密码错误');
                 }
                Session::set(config('user.user_data'),$admin);
                Session::set('last_time',time());
                Session::set(config('user.user_id'),$admin->id);
                model('admin')->where(['id'=>$admin->id])->setInc('login_count');
                model('admin')->save(['last_time'=>time()],['id'=>$admin->id]);
                $this->result([],config('code.success'),'登录成功');
            }
        }else{
            return $this->fetch();
        }
    }

    /**
     * 显示创建资源表单页.
     *
     * @return \think\Response
     */
    public function create()
    {
        //
    }

    /**
     * 保存新建的资源
     *
     * @param  \think\Request  $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
        //
    }

    /**
     * 显示指定的资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function read($id)
    {
        //
    }

    /**
     * 显示编辑资源表单页.
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * 保存更新的资源
     *
     * @param  \think\Request  $request
     * @param  int  $id
     * @return \think\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * 删除指定资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function delete($id)
    {
        //
    }
}
